package com.yunke.vo.circle;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 社交圈动态VO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(description = "社交圈动态信息")
public class YunkeCircleVo {

    /**
     * 动态ID
     */
    @Schema(description = "动态ID")
    private Long id;

    /**
     * 发布用户信息
     */
    @Schema(description = "发布用户信息")
    private UserInfo user;

    /**
     * 动态类型：1-纯文字 2-图片 3-视频 4-图文
     */
    @Schema(description = "动态类型：1-纯文字 2-图片 3-视频 4-图文")
    private Integer type;

    /**
     * 动态内容
     */
    @Schema(description = "动态内容")
    private String content;

    /**
     * 图片地址列表
     */
    @Schema(description = "图片地址列表")
    private List<String> images;

    /**
     * 视频地址
     */
    @Schema(description = "视频地址")
    private String video;

    /**
     * 视频封面图
     */
    @Schema(description = "视频封面图")
    private String videoCover;

    /**
     * 定位地址
     */
    @Schema(description = "定位地址")
    private String location;

    /**
     * 点赞数
     */
    @Schema(description = "点赞数")
    private Integer likeCount;

    /**
     * 评论数
     */
    @Schema(description = "评论数")
    private Integer commentCount;

    /**
     * 分享数
     */
    @Schema(description = "分享数")
    private Integer shareCount;

    /**
     * 浏览数
     */
    @Schema(description = "浏览数")
    private Integer viewCount;

    /**
     * 是否置顶
     */
    @Schema(description = "是否置顶")
    private Boolean isTop;

    /**
     * 是否热门
     */
    @Schema(description = "是否热门")
    private Boolean isHot;

    /**
     * 当前用户是否已点赞
     */
    @Schema(description = "当前用户是否已点赞")
    private Boolean isLiked;

    /**
     * 发布时间
     */
    @Schema(description = "发布时间")
    private Long createTime;

    /**
     * 发布时间文本
     */
    @Schema(description = "发布时间文本")
    private String createTimeText;

    /**
     * 最新评论列表（前3条）
     */
    @Schema(description = "最新评论列表（前3条）")
    private List<YunkeCircleCommentVo> latestComments;

    /**
     * 用户信息内部类
     */
    @Data
    @Schema(description = "用户信息")
    public static class UserInfo {
        @Schema(description = "用户ID")
        private Long userId;

        @Schema(description = "用户昵称")
        private String nickname;

        @Schema(description = "用户头像")
        private String avatar;

        @Schema(description = "VIP等级")
        private Integer vipLevel;

        @Schema(description = "是否认证")
        private Boolean isAuth;
    }
} 